﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Description;
using System.Web.UI.WebControls;
using DBSystem.BussinesEntities;
using DBSystem.BussinesLogic;
using Microsoft.Practices.Unity;

namespace DBSystem.Api.Controllers
{
    public class ClientesController : ApiController
    {
        [Dependency]
        public IClienteService ClienteService { get; set; }

        public IEnumerable<Cliente> Get()
        {
            return ClienteService.GetClientesByCriterio("");
        }

        public IEnumerable<Cliente> Get(string criterio)
        {
            return ClienteService.GetClientesByCriterio(criterio);
        }

        //[ResponseType(typeof(Cliente))]
        //public IHttpActionResult Get(int rucDni)
        //{
        //    var cliente = ClienteService.GetClienteByRucDni(rucDni.ToString());

        //    if (cliente == null)
        //        return NotFound();

        //    return Ok(cliente);
        //}

        [ResponseType(typeof(Producto))]
        public IHttpActionResult Get(Int32 id)
        {
            var cliente = ClienteService.GetClienteById(id);

            if (cliente == null)
            {
                return NotFound();
            }
            return Ok(cliente);
        }


        [ResponseType(typeof(Cliente))]
        public IHttpActionResult Post(Cliente cliente)
        {
            ClienteService.AddCliente(cliente);

            return CreatedAtRoute("DefaultApi", new { id = cliente.id }, cliente);
        }

    }
}
